package negocio;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import negocio.items.ItemLista;

public class ListaDeRodamientos implements Serializable {

	private static final long serialVersionUID = 1L;
	private long id;
	private Calendar fechaDesde;
	private Calendar fechaHasta;
	private boolean Actual;
	private Proveedor proveedor;
	private ListaDeRodamientos listaReemplazada;
	private List<ItemLista> items;
	
	public ListaDeRodamientos(){
		Actual = true;
		items = new ArrayList<ItemLista>();
	}

	//indica si el rodamiento se encuentra en la lista
	public boolean rodamientoDisponible(Rodamiento rod){
		for(ItemLista i: items)
			if(i.getRodamiento().equals(rod))
				return true;
		return false;
	}
	
	//indica la diferencia de stock entre lo pedido y lo solicitado
	public int diferecenciaStock(Rodamiento rod, int cantidad){
		int diferenciaStock = this.obtenerStockDisponible(rod) - cantidad;
		return diferenciaStock;
	}
	
	//stock disponible de determinado rodamiento en esta lista
	public int obtenerStockDisponible(Rodamiento rod){
		for(ItemLista i: items)
			if(i.getRodamiento().equals(rod))
				return i.getStockDisponible();
		return 0;
	}
	
	//cotiza el rodamiento en cantidad
	public float cotizarRodamiento(Rodamiento r, int cantidad){
		for(ItemLista i: items)
			if(i.getRodamiento().equals(r))
				return i.cotizar(cantidad);
		return 0;
	}
	
	
	//obtiene todos los rodamientos de la lista
	public List<Rodamiento> obtenerTodosLosRodamientos(){
		List<Rodamiento> rodamientos = new ArrayList<Rodamiento>();
		for(ItemLista aux: items)
			rodamientos.add(aux.getRodamiento());
		return rodamientos;
	}
	
	
	//getters y setters
	public long getId() {
		return id;
	}

	public void setId(long id) {
		this.id = id;
	}

	public Calendar getFechaDesde() {
		return fechaDesde;
	}

	public void setFechaDesde(Calendar fechaDesde) {
		this.fechaDesde = fechaDesde;
	}

	public Calendar getFechaHasta() {
		return fechaHasta;
	}

	public void setFechaHasta(Calendar fechaHasta) {
		this.fechaHasta = fechaHasta;
	}

	public boolean isActual() {
		return Actual;
	}

	public void setActual(boolean esActual) {
		this.Actual = esActual;
	}

	public Proveedor getProveedor() {
		return proveedor;
	}

	public void setProveedor(Proveedor proveedor) {
		this.proveedor = proveedor;
	}

	public List<ItemLista> getItems() {
		return items;
	}

	public void setItems(List<ItemLista> items) {
		this.items = items;
	}

	public ListaDeRodamientos getListaReemplazada() {
		return listaReemplazada;
	}

	public void setListaReemplazada(ListaDeRodamientos listaReemplazada) {
		this.listaReemplazada = listaReemplazada;
	}
	
}
